1. Field of Invention
Embodiments of the invention relate generally to memory systems, and more particularly, to memory systems having internal and external processors.
2. Description of Related Art
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present invention, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light and not as admissions of prior art.
Electronic systems typically include one or more processors, which may retrieve and execute instructions, and output the results of the executed instruction, such as to store the results to a suitable location. A processor generally includes arithmetic logic unit (ALU) circuitry, which is capable of executing instructions such as arithmetic and logic operations on one or more operands. For example, the ALU circuitry may add, subtract, multiply, or divide one operand from another, or may subject one or more operands to logic operations, such as AND, OR, XOR, and NOT logic functions. The various arithmetic and logic operations may have different degrees of complexity. For example, some operations may be executed by inputting the operand(s) through the ALU circuitry in one cycle, while other operations may utilize multiple clock cycles.
A number of elements in the electronic system may be involved in directing a set of instructions to the ALU for execution. For example, the instructions and any corresponding data (e.g., the operands on which the operations will be executed) may be generated by a controller, or some other suitable processor in the electronic system. As the time or number of clock cycles required for the execution of a set of instructions may vary depending on the type of operation, the controller may write the instructions and data to memory, for example, a memory array, and the ALU may retrieve the information (e.g., the instructions and/or corresponding data) to execute the instructions. Once the ALU has executed an instruction, the results of the executed instruction may be stored back in the memory array.
In some memory systems, the memory array may be external to the ALU. Thus, an external bus may be employed to input the instructions and data from a memory array to an ALU, and to output the completed results back to the memory array or another suitable output. Such external input/outputs may increase power consumption in the system. In other memory systems, a processor may be configured in the same package or embedded on the same silicon chip as a memory component, and may be referred to as a processor-in-memory (PIM). For example, one or more ALUs may be embedded on the same chip as a memory array or with the memory array in the same package, which may eliminate the need for an external bus to transfer information between the memory array and the ALU to conserve power in the electronic device. However, in a PIM system, more than one processor may require access to the memory array. For example, an external processor may write instructions to the memory array, and an internal processor (e.g., the ALU) may read instructions from the memory array; further, the ALU may write the results of the instructions to the memory array, and the external processor may read or control the output of the results from the memory array. As more than one processor may require access to the memory array, conflicts may occur.